package main

import (
	"fmt"
	"os"
)

//作业 基于map类型实现客户关系管理系统(客户增删改查)。客户信息包括姓名、年龄、职业 切片嵌套map 可以保证数据的有序性
func MgrSliceMap() {
	curstomersSliceMap := make([]map[string]string, 0)
	for {
		fmt.Println(`
			0.增加客户信息
			1.查看单个客户信息
			2.查看所有客户信息
			3.删除客户信息
			4.修改客户信息
			5.退出系统
		`)
		var choice int
		fmt.Println("输入你的选择:")
		fmt.Scan(&choice)
		switch choice {
		case 0:
			fmt.Println("增加客户信息")
			var worker string
			var id string
			fmt.Println("输入职位:")
			fmt.Scan(&worker)
			fmt.Println("输入序号:")
			fmt.Scan(&id)
			personmap := make(map[string]string)
			personmap["worker"] = worker
			personmap["id"] = id
			curstomersSliceMap = append(curstomersSliceMap, personmap)
			if curstomersSliceMap != nil {
				fmt.Printf("职位是:%s,id是:%s 的用户添加成功\n", worker, id)
			}
		case 1:
			fmt.Println("查看单个客户信息")
			var index int
			fmt.Scan(&index)
			if index >= 0 && index <= len(curstomersSliceMap) {
				fmt.Printf("该客户在切片中的位置:%d,职位:%s,id:%s\n", index, curstomersSliceMap[index]["worker"], curstomersSliceMap[index]["id"])
			}
		case 2:
			fmt.Println("查看所有客户信息")
			for _, value := range curstomersSliceMap {
				fmt.Printf("职位:%s,id:%s\n", value["worker"], value["id"])
			}
		case 3:
			fmt.Println("删除客户信息.输入删除用户在切片中的下标")
			var index int
			fmt.Scan(&index)
			if index >= 0 && index <= len(curstomersSliceMap) {
				curstomersSliceMap = append(curstomersSliceMap[:index], curstomersSliceMap[index+1:]...)
				fmt.Printf("id是:%d的用户删除成功\n", index)
			}
		case 4:
			fmt.Println("修改客户信息。输入修改用户的下标")
			var index int
			fmt.Scan(&index)
			if index >= 0 && index <= len(curstomersSliceMap) {
				var worker string
				var id string
				fmt.Println("输入新职位:")
				fmt.Scan(&worker)
				fmt.Println("输入新序号:")
				fmt.Scan(&id)
				curstomersSliceMap[index]["worker"] = worker
				curstomersSliceMap[index]["id"] = id
				if value, ok := curstomersSliceMap[index]["worker"]; !ok {
					fmt.Printf("%d对应的信息修改失败\n", index)
				} else {
					fmt.Printf("%d对应的信息修改成功%s\n", index, value)
				}
			}
		case 5:
			os.Exit(10002)
		default:
			fmt.Println("输入有误~~~")
			os.Exit(10001)
		}
	}
}
func main() {
	MgrSliceMap()
}
